In recent years, image processing apparatuses such as laser beam printers and the like which use an electrophotography method are popularly used as output apparatuses of computers. These image processing apparatuses comprise a function of executing print processing by converting a drawing command received from a host computer into image data.
FIG. 1 is a block diagram showing the arrangement of a general image processing apparatus. Processing for converting a drawing command received from a host computer into image data, and printing the converted data on a sheet surface will be described below using FIG. 1.
An application 201 which runs on a host computer 200 is used to create, e.g., a page layout document, wordprocessor document, graphic document, and the like. A printer driver 202 generates a drawing command based on digital document data created by the application. The drawing command generated by the printer driver 202 is described using a printer description language called a page description language (PDL), which is used to create page image data. The drawing command normally includes text, graphic, image drawing instructions and the like.
The drawing command generated by the printer driver 202 is transferred to an image processing apparatus 203 via a network or the like.
Upon reception of the drawing command from the host computer 200, the image processing apparatus 203 interprets the drawing command by a PDL interpreter 204. Based on the interpretation result, a display list generator 205 generates a display list 212 which can be processed by a rasterize processor 206. The rasterize processor 206 generates a bitmap image 210 by rasterizing the display list 212, and stores the generated bitmap image in a data storage unit 207.
An image processor 208 converts the bitmap image 210 stored in the data storage unit 207 into an image format that can be output to an image output unit 209 by applying image processing such as color conversion processing, pseudo-halftone processing, and the like to the bitmap image 210.
Assume that input data to the image output unit 209 are CMYK image data corresponding to four color materials of cyan (C), magenta (M), yellow (Y), and black (K), and the bitmap image 210 generated by the rasterize processor 206 is RGB image data. In this case, the image processor 208 converts RGB image data stored in the data storage unit 207 into CMYK image data using a lookup table (LUT) or the like. Normally, the image output unit 209 can output only a low-tone (2-, 4-, 16-tone levels, or the like) image in many cases. Therefore, in order to allow the image output unit 209 which can output only a small number of tone levels to attain stable halftone expression, the image processor 208 executes pseudo-halftone processing.
The image processor 208 also applies smoothing processing to an edge portion of an image to obtain a more preferable image.
The image output unit 209 receives image data generated in a predetermined image format, and executes output processing. In this way, an image expressed by the drawing command output from the host computer 200 is printed on a sheet surface.
In order to improve print image quality in the aforementioned image data generation process, attribute information is often appended to pixels of the bitmap image 210 generated according to the drawing command. For example, see Japanese Patent Laid-Open No. 2000-259819.
That is, the rasterize processor 206 generates attribute information 211 indicating the types of image characteristics of image regions to which respective pixels belong simultaneously with generation of the bitmap image 210, and stores the generated information in the data storage unit 207.
The attribute information indicates the region attributes of pixels when image regions are classified according to their image characteristics. The attribute information includes a text attribute which indicates a pixel included in text data or an image region having that image characteristic. Also, the attribute information includes an image attribute which indicates a pixel included in bitmap data or an image region having that image characteristic. Furthermore, the attribute information includes a graphics attribute which indicates a pixel included in draw data or an image region having that image characteristic, and the like. That is, by appending the attribute information 211 to each pixel of the bitmap image 210, the image processor 208 can execute image processing suited to the image characteristics of respective image regions for respective pixels.
For example, LUTs used upon color conversion from RGB image data to CMYK image data are switched between the image attribute and text attribute. Screen processing is applied using different matrices for respective region attributes, and a low LPI screen that gives priority to tone characteristics is applied to a photo image of the image attribute. Also, a high LPI screen that gives priority to a resolution can be applied to characters of the text attribute and lines of the graphics attribute.
In this manner, since the rasterize processor 206 generates the attribute information 211 based on raster objects, image processing can be switched for respective objects included in the drawing command.
FIGS. 2A to 2C are views for explaining generation of the bitmap image 210 and attribute information 211 in more detail. FIG. 2A shows an image formation result, and a character “A” 302 (color is RGB=(0, 0, 0)) of the text attribute is formed on a rectangle 301 (color is RGB=(255, 0, 0)) of the graphics attribute.
FIG. 2B is an enlarged view of a part 303 of the rasterization result (bitmap image 210) of the character 302. The bitmap image 210 is made up of a pixel array shown in FIG. 2B having 8-bit R, G, and B data (a total of 24) bits) per pixel.
FIG. 2C shows attribute information 211 of pixels shown in FIG. 2B, and the attribute information 211 of each pixel is given by 2 bits in this example. Note that the bitwidth of the attribute information changes depending on the number of attributes to be handled. A table 304 which indicates the relationship between attribute information and region attributes is separately prepared. That is, the attribute information 211 is made up of a pixel sequence shown in FIG. 2C having 2 bits per pixel.
The rasterize processor 206 writes, as attribute information, “3” indicating the graphics attribute in each pixel of RGB=(255, 0, 0) shown in FIG. 2B, and “2” indicating the text attribute in each pixel of RGB (0, 0, 0) shown in FIG. 2B.
However, the aforementioned technique must store the attribute information 211 corresponding to respective pixels in the data storage unit 207 in addition to the bitmap image 210 generated according to the drawing command so as to improve the print image quality. As a result, the data volume to be read out from and written in the data storage unit 207 unwantedly increases.
As for simple black, the result after color conversion and halftoning is black irrespective of attributes. In other words, no difference is generated depending on attribute information (no attribute information is required). For a simple black image, not only attribute information is not necessary, but also multi-values (e.g., 8 bits or 16 bits) need not be assigned to one pixel of the bitmap image 210 and such image can be expressed by binary data (1 bit). When the aforementioned technique is applied to black or an image including a larger black part than other colors such as a simple black image, the image forming speed decreases due to wasteful read and write accesses to the data storage unit 207.